package com.beiding.t;

import com.alibaba.fastjson.JSON;
import com.beiding.jsonanalyzer.Analyzer;
import org.springframework.http.HttpEntity;
import org.springframework.http.HttpHeaders;
import org.springframework.web.client.RestTemplate;

import java.io.*;
import java.util.Arrays;
import java.util.List;
import java.util.concurrent.CopyOnWriteArrayList;
import java.util.concurrent.ExecutorService;
import java.util.concurrent.Executors;

/**
 * @author 丁常磊
 * @date 2021/12/16 21:39
 */

public class 问题订单处理 {

//    public static void main(String[] args) throws IOException {
//
//        FileReader fileReader = new FileReader(new File("C:\\Users\\lenovo\\Desktop\\重算订单\\重算数据.csv"));
//
//        BufferedReader bufferedReader = new BufferedReader(fileReader);
//
//        bufferedReader.readLine();
//
//        //线程安全
//        List<String> hs = new CopyOnWriteArrayList<>(Arrays.asList("610118935063"
//                , "610119300367", "609768379247"
//        ));
//
//
//        handlePass(hs);
//
//        ExecutorService executorService = Executors.newSingleThreadExecutor();
//        ExecutorService te = Executors.newFixedThreadPool(10);
//
//
//        FileWriter fieldWriter = new FileWriter(new File("C:\\Users\\lenovo\\Desktop\\重算订单\\处理日志\\t" + System.currentTimeMillis() + ".txt"));
//
//        while (true) {
//
//            String line = bufferedReader.readLine();
//            if (line == null) {
//                break;
//            }
//
//            te.submit(() -> {
//
//                String[] split = line.split(",");
//
//                String id = split[2];
//
//
//                System.out.println(id);
//                String rid = id.substring(1, id.length() - 1);
//                System.out.println(rid);
//
//                if (hs.contains(rid)) {
//                    System.out.println("执行过跳过  " + rid);
//                    return;
//                }
//
//                //执行计算
//
//                System.out.println("开始执行计算" + rid);
//
//                StringBuilder rb = new StringBuilder();
//
//                //记录id
//                rb.append("#OID:  ").append(rid);
//
//                //发起调用
//
//                Analyzer analyzer = Analyzer.read("{\n" +
//                        "    \"bill_detail\":{\n" +
//                        "        \"billno\":\"\"\n" +
//                        "    }\n" +
//                        "}");
//
//                analyzer.set("bill_detail.billno", rid);
//
//                String request = request("http://10.0.84.27/omp-event-webin/rest?method=efuture.omp.event.coupongain.recalc&ent_id=0&rootkey=1638857099907", analyzer);
//                System.out.println("调用结果");
//                System.out.println(request);
//
//                executorService.submit(() -> {
//                    rb.append("\n#RST  ").append(request).append("\n\n");
//                    System.out.println("写入任务       " + rb.toString());
//                    try {
//
//                        fieldWriter.write(rb.toString());
//                        fieldWriter.flush();
//                    } catch (Exception e) {
//                        System.out.println("写入失败");
//                        System.out.println(rb);
//                        e.printStackTrace();
//                    }
//
//                });
//
//
//                hs.addElement(rid);
//            });
//
//        }
//
//    }
//
//    private static void handlePass(List<String> list) throws IOException {
//        File[] files = new File("C:\\Users\\lenovo\\Desktop\\重算订单\\处理日志").listFiles();
//
//        if (files != null) {
//            for (File file : files) {
//                BufferedReader reader = new BufferedReader(new FileReader(file));
//
//                while (true) {
//                    String s = reader.readLine();
//                    if (s == null) {
//                        break;
//                    }
//                    if (s.startsWith("#RST  ")) {
//                        String substring = s.substring("#RST  ".length());
//                        int index = substring.indexOf("订单已计算返利,不能重复计算");
//
//                        if (index != -1) {
//
//                            int sf = -1;
//                            int st = -1;
//                            for (int i = index; i >= 0; i--) {
////                                System.out.println(substring.charAt(i));
//                                if (']' == substring.charAt(i)) {
//                                    if (st == -1) {
//                                        st = i;
//                                    }
//                                } else if ('[' == substring.charAt(i)) {
//                                    if (sf == -1) {
//                                        sf = i;
//                                    }
//                                }
//                            }
//
//                            String id = substring.substring(sf + 1, st);
//
////                            System.out.println(id);
//
//                            list.addElement(id);
//
//                        }
//
//
//                    }
//
//                }
//            }
//        }
//
//
//    }
//
//    private static String request(String path, Analyzer body) {
//        RestTemplate restTemplate = new RestTemplate();
//        HttpHeaders httpHeaders = new HttpHeaders();
//        HttpEntity<String> entity = new HttpEntity<>(body.getContent(JSON.class).toJSONString(), httpHeaders);
//        return restTemplate.postForObject(path, entity, String.class);
//    }
/*


1、可查询导出会员消费排名数据
2、查询导出的数据显示匹配后的数据

 */
}
